As telecommunications networks have evolved from being circuit-based to using a packet-based architecture, the concept of a call has changed from a continuous circuit between point A and point B to packets of digitized voice data traveling across a network, using any path available between point A and point B. This concept has been extended to send any type of data, not just digitized voice data, across the telecommunications network, resulting in modern converged networks which allow telecommunications service providers to offer multimedia streaming, web-browsing, and other data-oriented services in addition to traditional telephone service to their customers.
Typical converged networks, however, are not purely packet-based, but are an amalgam of various types of networks, including public switched telephone networks (PSTN), mobile networks, wi-fi networks, and the Internet. Usually, some form of gateway devices are required to provide an interface between the PSTN components and the packet-based components of a converged network and to convert data from one format and protocol into another. For example, PSTN networks use time division multiplexing (TDM), in which the caller's voice is digitized and assigned to a time slot in a frame of data traveling between nodes in the PSTN network, while packet networks use transmission control protocol (TCP) or user-datagram protocol (UDP) to transport packets of data such as digitized voice. Also, in PSTN networks, the bearer channel, which carries voice or data traffic, and the signaling channel, which is used by nodes in the PSTN network to negotiate the route of the bearer channel through the network, typically use physically separate networks. In contrast, while packet-based networks may maintain the concept of distinct signaling and bearer messages, both types of messages typically travel along the same physical network. Therefore, converged networks typically require two distinct types of gateway devices or gateway functions to connect the PSTN and packet-based networks: one for the bearer channel and another for the signaling channel.
The bearer channel interface between traditional PSTN networks and packet-based networks, such as an Internet protocol multimedia subsystem (IMS) network, may be provided by a media gateway (MGW). The MGW may convert data between TDM format and packet format. A physical interface on the MGW may be referred to as a termination point. The signaling channel interface between traditional PSTN networks and packet-based networks may be provided by a media gateway controller (MGC). The MGC may convert between signaling system #7 (SS7) used by PSTNs and session initiation protocol (SIP) used by IMS and other packet-based networks. The MGC typically controls one or more media gateways. The combination of a MGC and one or more MGWs used for voice over Internet protocol (VoIP) is commonly called a softswitch.
In packet-based communication, there is no tight correlation between the bearer path (the path taken by the call) and the signaling path (the path used for communicating between nodes in a network in order to properly route the call packets from source to destination). Nor is there a requirement that the bearer path and signaling path be created together and dismantled together; a signaling path may stay up for a leg of a call while the media path of the leg of the call is taken down. For example, someone calling an automated reservation system, such as those used for booking airline flight reservations, might connect first to an automated voice menu program running on a server in one location, then connect to a human operator in another location. In such a situation, the signaling path to the voice menu program server may continue to operate (to exert application level call control and other functionality such as billing, for example) even though the bearer path to the voice menu program server has been dismantled—e.g., when the caller is switched from talking to the voice menu program to talking with a human operator. One benefit of this arrangement is that the voice menu program is now available for use by the next person who calls the airline flight reservation number. Another benefit of the use of packet-based communication is that the caller may be transparently rerouted from the voice menu server to a human operator without the need for the caller to hang up from the menu server and dial again to reach the human operator. Other benefits of packet-based communication include the ability to add additional callees (e.g., conference calling, three-way calling, etc.), and the ability to associate other data with the call, such as caller ID.
In contrast to circuit-based communication, where a single logical end-to-end circuit is dedicated to carrying the call, packet-based communication has adopted a generic call control model, referred to as a “half-call” model, in which a call is conceptually divided into two half-calls: the originating (ingress) portion, corresponding to the caller's connection from the PSTN to the packet network, and the terminating (egress) portion, corresponding to the callee's connection from the packet network to the PSTN.
As used herein, the term “call leg” refers to a bidirectional bearer path through a network processing node. A call leg is roughly analogous to a half-call. As used herein, the term call leg is not analogous to a SIP dialog; a SIP dialog describes a logical connection between two endpoints of a path, while a call leg describes a data path through a network processing node such as a media gateway.
As used herein, the term “context” refers to the logical association of two or more terminal points with each other to indicate the physical interfaces and resources a particular call is occupying in a network processing node. For example, a call context may describe a call, through a MGW, that uses one of the MGW's TDM channel interfaces to connect to a PSTN network, and uses one of the MGW's Ethernet interfaces to connect to a packet interface. The call context maintains information about which TDM channel and/or Ethernet interfaces are used for a particular call.
As used herein, the term “call instance” refers to an object created in a network processing node, such as a media gateway controller, to represent a call. A call instance may maintain information about the call such as the call's context and the IP addresses and ports of the ingress and egress media gateways through which the call travels. A call instance may keep track of the source, or near end, address of the bearer path, and the destination, or far end, address of the bearer path. Thus, a call instance may maintain more information than is associated with a traditional half-call model.
One consequence of using the half-call model is that due to the loose correlation between the two legs of a call, the telecommunications network control system may be unable to identify and rectify situations where network resources are inefficiently used. A non-trivial example is the so-called “hairpin” situation—a loop condition where a connection originates and terminates at the same node. A hairpin may not be created directly, but may be an artifact resulting from a process of several steps, as described in the example below.
FIG. 1A illustrates the first step in a hairpin scenario, using the example of a caller making a flight reservation described above. Referring to FIG. 1A, caller 100 on a public switched telephone network PSTN 102 dials the telephone number of an airline flight reservation system, an automated voice menu system which is provided by a SIP application server SAS 104 within packet network 106. Based upon the telephone number, SS7 signaling messages may be sent through PSTN 102 to a media gateway controller MGC 108, which may use media gateway control protocol (MGCP) messages to control a media gateway MGW 110, directing it to establish a bearer path between caller 100 and MGW 110. MGC 108 may establish call leg L1 through MGW 110, and send a SIP INVITE request to SAS 104 to create a bearer path from MGW 110 to SAS 104 through packet network 106. Once call leg L1 connects these two bearer paths, caller 100 may use the voice menu system on SAS 104.
FIG. 1B illustrates the next step in the hairpin scenario. If for example caller 100 selects a voice menu option to transfer his call to another person, callee 112, SAS 104 will initiate the connection from SAS 104 to callee 112, which includes sending a request to MGC 108 to create a bearer path from SAS 104 through packet network 106 to MGW 110. MGC 108 may establish call leg L2 through MGW 110 and create a bearer path from MGW 110 through PSTN 102 to callee 112. In this way, a loop is created from MGW 110 to SAS 104 and back again, through call legs L1 and L2.
FIG. 1C illustrates the final step in the hairpin scenario. Because SAS 104 is no longer needed in the path from caller 100 to callee 112, it will issue a SIP RE-INVITE command to callee 112, requesting callee 112 to connect directly to caller 100, instead of to SAS 104. As a result, MGC 108 will instruct MGW 110 to connect call leg L1 to call leg L2, bypassing SAS 104 and thereby creating a hairpin condition at MGW 110. This type of hairpin, created as a result of a connection to and later disconnection from a node, is referred to as a node hairpin. Although functional, the hairpin so created is an inefficient use of network resources. This is shown in more detail in FIG. 2A through FIG. 2C.
FIG. 2A illustrates call leg L1 shown in FIG. 1A in more detail. Referring to FIG. 2A, digitized voice data from caller 100 is part of TDM data 200 transported across PSTN 102 to MGW 110 to be processed. Call leg L1 is the data path through MGW 110. Call data from TDM channel interface C1 202 is routed through a switching matrix 204 to an available voice server 206. The function of voice server 206 is to convert data between TDM format and packet format. Thus, it is common for voice server 206 to be a digital signal processor (DSP) or other, typically expensive, hardware. Packet data produced by voice server 206 is sent to a packet matrix 208, which routes the packet data to an available Ethernet interface E1 210. The call is routed through E1 210 and across packet network 106 (not shown) to SAS 104, allowing caller 100 to talk to the voice menu system 212.
FIG. 2B illustrates the call legs L1 and L2 shown in FIG. 1B in more detail. Referring to FIG. 2B, caller 100 has for example selected a voice menu option to connect to another party, callee 112. In response, SAS 104 has connected caller 100 with callee 112 by making a request to MGC 108 to establish a new call leg L2 through MGW 110 via the data path shown through Ethernet interface E2 214, voice server 216 and TDM channel interface C2 218.
A MGW typically has multiple physical interfaces through which bearer traffic may flow. In FIG. 2A, four termination points are shown: the TDM channel interfaces C1 202 and C2 218, and the Ethernet interfaces E1 210 and E2 214. In the example shown in FIG. 2B, a first call context will associate terminal point C1 202 with terminal point E1 210, and a second call context will associate terminal point C2 218 with terminal point E2 214.
FIG. 2C illustrates the condition shown in FIG. 1C in more detail. Referring to FIG. 2C, SAS 104 has issued a SIP RE-INVITE command to callee 112, and as a result MGC 108 has instructed MGW 110 to create a logical connection between caller 100 and callee 112, through call legs L1 and L2. Note that the first and second contexts as described above for FIG. 2B did not change and still exist in FIG. 2C. In FIG. 2C it can be seen that this hairpin condition consumes significant resources within MGW 110, including two TDM channel interfaces, two voice servers, two Ethernet interfaces, and internal switching channels within the switching matrix and packet matrix modules. If, from this point on, caller 100 has no need to access any service or feature within packet network 106, there may be no need to route the call through the DSP or packet resources of MGW 110. FIG. 3 illustrates a second type of hairpin condition, referred to as a network hairpin, which is created when a call enters the packet network through a media gateway, is routed through the packet network, and exits the packet network through the same media gateway by which it entered. Referring to FIG. 3, caller 100 on PSTN 102 calls callee 112, also on PSTN 102; the call enters packet network 106 through call leg L1 in MGW 110; is routed through packet network 106, eventually arriving at the same gateway MGW 110; exits packet network 106 through call leg L2 in MGW 110; and reenters PSTN 102. As with a node hairpin, this network hairpin also consumes significant Packet processing resources within a media gateway.
Currently there are no means by which an entity in the network can recognize that the first and second legs of a call are in a hairpin condition so that it may free the packet and DSP resources unnecessarily in use by the two call legs and make the released resources available for the next call.
Accordingly, in light of these disadvantages associated with the occurrence of hairpin conditions within a converged network, there exists a need for a way to detect and eliminate a hairpin condition in a telecommunications network.